package com.haixiaoke.saas.ad.mapper;

import com.haixiaoke.saas.ad.domain.ApartmentAd;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 公寓广告Mapper接口
 *
 * @author qixi
 * @date 2024-04-26
 */
public interface ApartmentAdMapper {
    /**
     * 查询公寓广告
     *
     * @param bannerId 公寓广告主键
     * @return 公寓广告
     */
    ApartmentAd selectApartmentAdByBannerId(Long bannerId);

    /**
     * 查询公寓广告列表
     *
     * @param apartmentAd 公寓广告
     * @return 公寓广告集合
     */
    List<ApartmentAd> selectApartmentAdList(ApartmentAd apartmentAd);

    /**
     * 新增公寓广告
     *
     * @param apartmentAd 公寓广告
     * @return 结果
     */
    int insertApartmentAd(ApartmentAd apartmentAd);

    /**
     * 修改公寓广告
     *
     * @param apartmentAd 公寓广告
     * @return 结果
     */
    int updateApartmentAd(ApartmentAd apartmentAd);

    /**
     * 删除公寓广告
     *
     * @param bannerId 公寓广告主键
     * @return 结果
     */
    int deleteApartmentAdByBannerId(Long bannerId);

    /**
     * 批量删除公寓广告
     *
     * @param bannerIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteApartmentAdByBannerIds(Long[] bannerIds);

    /**
     * 根据区域类型查询公寓广告
     *
     * @param areaType 区域类型
     * @return 公寓广告
     */
    ApartmentAd selectApartmentAdByAreaType(String areaType);

    /**
     * 根据城市编码查询公寓广告
     *
     * @param cityCode 城市编码
     * @return 公寓广告
     */
    ApartmentAd selectApartmentAdByCityCode(String cityCode);

    /**
     * 根据位置查询公寓广告
     *
     * @param location 位置
     * @return 公寓广告
     */
    List<ApartmentAd> selectApartmentAdByLocation(String location);

    /**
     * 根据城市编码和位置查询公寓广告
     *
     * @param cityCode 城市编码
     * @param location 位置
     * @return 公寓广告
     */
    List<ApartmentAd> selectApartmentAdByCityCodeAndLocation(@Param("cityCode") String cityCode, @Param("location") String location);

    /**
     * 根据城市编码查询公寓广告
     *
     * @param cityCode 城市编码
     * @return 公寓广告
     */
    List<ApartmentAd> selectApartmentAdByCityCodeAndLimit(String cityCode);
}
